Skip to content

feat: move update button to sidebar footer as dismissable pill#1116

Open
Noojuno wants to merge 4 commits intopingdotgg:mainfrom
Noojuno:feat/sidebar-update-pill
Open

feat: move update button to sidebar footer as dismissable pill#1116
Noojuno wants to merge 4 commits intopingdotgg:mainfrom
Noojuno:feat/sidebar-update-pill

Conversation

@Noojuno
Copy link
Contributor

@Noojuno Noojuno commented Mar 15, 2026

What Changed

  • Move the desktop update button from the sidebar header to the footer, displayed as a pill above the Settings button. The pill shows contextual states: "Update available", "Downloading (X%)", and "Restart to update".
  • Add a dismiss button that hides the notification until the next app launch.

Why

It was a little unclear when there was a new update available. This change is to increase clarity and make it very obvious when there is a new update.

UI Changes

Update process

Note: This process was mocked, so we didn't actually restart the app.

Screen.Recording.2026-03-15.at.11.33.42.PM.mov

Dismiss

Screen.Recording.2026-03-15.at.11.34.03.PM.mov

arm64 running intel warning

image

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

Note

Move desktop update indicator to sidebar footer as a dismissable pill

  • Removes the update rocket button from the sidebar header and the ARM64-on-Intel warning alert from the content area in Sidebar.tsx.
  • Adds a new SidebarUpdatePill.tsx component rendered in the sidebar footer that shows update status (available, downloading with progress, or ready to restart) and supports download/install actions with toasts.
  • The pill is dismissable for the "update available" state until next launch.
  • The ARM64-on-Intel warning alert is now rendered inside SidebarUpdatePill above the pill.

Macroscope summarized 1aa4ce5.


Note

Medium Risk
Moderate risk: refactors the Electron update UI and its event subscription/click handlers, which could affect update visibility and triggering download/install actions. Changes are UI-scoped but interact with desktopBridge update APIs.

Overview
Moves the Electron desktop update UI from a small header icon (and inline Apple Silicon Intel-build warning) into a new SidebarUpdatePill rendered in the sidebar footer.

The new pill subscribes to desktopBridge update state, shows status-specific labels (available, downloading with %, restart-to-update), triggers downloadUpdate/installUpdate with existing toast handling, and adds a dismiss control that hides the pill until next launch (while preserving the Apple Silicon warning alert).

Written by Cursor Bugbot for commit 1aa4ce5. This will update automatically on new commits. Configure here.

@coderabbitai
Copy link

coderabbitai bot commented Mar 15, 2026

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 5a770bd9-087a-47a1-929b-de69504bca53

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions github-actions bot added size:M 30-99 changed lines (additions + deletions). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:L 100-499 changed lines (additions + deletions). and removed size:M 30-99 changed lines (additions + deletions). labels Mar 15, 2026
Noojuno added 4 commits March 25, 2026 09:56
Move the desktop update button from the sidebar header to the footer,
displayed as a pill above the Settings button. The pill shows contextual
states: "Update available", "Downloading (X%)", and "Restart to update".
Add a dismiss button that hides the notification until the next app launch.
Move all desktop update UI (pill + arm64 warning) into a single
SidebarUpdatePill component that owns its own state subscription,
action handlers, and dismiss logic. Removes ~220 lines from Sidebar.tsx.
Use the original Alert component with title and description for the
arm64 Intel build warning, remove redundant action button since the
update pill handles it, and match sidebar font size with text-xs.
Restore real bridge subscription and isElectron checks that were
hardcoded for local testing.
@Noojuno Noojuno force-pushed the feat/sidebar-update-pill branch from 1303272 to 1aa4ce5 Compare March 24, 2026 21:09
Copy link
Contributor

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

<div
className={`group/update relative flex w-full items-center rounded-full text-xs font-medium bg-sky-400/15 text-sky-400${
disabled ? " cursor-not-allowed opacity-60" : ""
}`}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Update pill lacks visual differentiation for error states

Low Severity

The pill always renders with bg-sky-400/15 text-sky-400 styling regardless of state. The old code used shouldHighlightDesktopUpdateError to apply text-rose-500 animate-pulse for error states (download/install failures), visually alerting users something went wrong. The new pill drops that import entirely, making shouldHighlightDesktopUpdateError dead code in production (only referenced in tests). Additionally, when state.status is "error" with errorContext === "download", the pill label reads "Update available" rather than indicating a retry, since it falls through to the default branch. The tooltip provides correct error context, but the primary visible label is misleading for error-retry scenarios.

Additional Locations (1)
Fix in Cursor Fix in Web

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L 100-499 changed lines (additions + deletions). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants